//
//  ADScanViewController.m
//  Saoyisao_Test
//
//  Created by Adiljan on 2016/11/1.
//  Copyright © 2016年 Adiljan. All rights reserved.
//

#import "ADScanViewController.h"
#import "LBXScanVideoZoomView.h"
#import "LBXAlertAction.h"
#import "ResultViewController.h"

@interface ADScanViewController ()
@property (nonatomic, strong) LBXScanVideoZoomView *zoomView;
@end

@implementation ADScanViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
        
        self.edgesForExtendedLayout = UIRectEdgeNone;
    }
    self.view.backgroundColor = [UIColor blackColor];
}
- (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
        
        if (_isQQSimulator) {
            
            [self drawBottomItems];
            [self drawTitle];
            [self.view bringSubviewToFront:_topTitle];
        }
        else
        _topTitle.hidden = YES;
    }
    //绘制扫描区域
- (void)drawTitle
    {
        if (!_topTitle)
        {
            self.topTitle = [[UILabel alloc]init];
            _topTitle.bounds = CGRectMake(0, 0, 145, 60);
            _topTitle.center = CGPointMake(CGRectGetWidth(self.view.frame)/2, 50);
            
            //3.5inch iphone
            if ([UIScreen mainScreen].bounds.size.height <= 568 )
            {
                _topTitle.center = CGPointMake(CGRectGetWidth(self.view.frame)/2, 38);
                _topTitle.font = [UIFont systemFontOfSize:14];
            }
            
            
            _topTitle.textAlignment = NSTextAlignmentCenter;
            _topTitle.numberOfLines = 0;
            _topTitle.text = @"将取景框对准二维码即可自动扫描";
            _topTitle.textColor = [UIColor whiteColor];
            [self.view addSubview:_topTitle];
        }    
    }
- (void)drawBottomItems
    {
        if (_bottomItemsView) {
            
            return;
        }
        
        self.bottomItemsView = [[UIView alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(self.view.frame)-164,
                                                                       CGRectGetWidth(self.view.frame), 100)];
        _bottomItemsView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.6];
        
        [self.view addSubview:_bottomItemsView];
        
        CGSize size = CGSizeMake(65, 87);
        self.btnFlash = [[UIButton alloc]init];
        _btnFlash.bounds = CGRectMake(0, 0, size.width, size.height);
        _btnFlash.center = CGPointMake(CGRectGetWidth(_bottomItemsView.frame)/2, CGRectGetHeight(_bottomItemsView.frame)/2);
        [_btnFlash setImage:[UIImage imageNamed:@"qrcode_scan_btn_flash_nor"] forState:UIControlStateNormal];
        [_btnFlash addTarget:self action:@selector(openOrCloseFlash) forControlEvents:UIControlEventTouchUpInside];
        
        self.btnPhoto = [[UIButton alloc]init];
        _btnPhoto.bounds = _btnFlash.bounds;
        _btnPhoto.center = CGPointMake(CGRectGetWidth(_bottomItemsView.frame)/4, CGRectGetHeight(_bottomItemsView.frame)/2);
        [_btnPhoto setImage:[UIImage imageNamed:@"qrcode_scan_btn_photo_nor"] forState:UIControlStateNormal];
        [_btnPhoto setImage:[UIImage imageNamed:@"qrcode_scan_btn_photo_down"] forState:UIControlStateHighlighted];
        [_btnPhoto addTarget:self action:@selector(openPhoto) forControlEvents:UIControlEventTouchUpInside];
        
        self.btnMyQR = [[UIButton alloc]init];
        _btnMyQR.bounds = _btnFlash.bounds;
        _btnMyQR.center = CGPointMake(CGRectGetWidth(_bottomItemsView.frame) * 3/4, CGRectGetHeight(_bottomItemsView.frame)/2);
        [_btnMyQR setImage:[UIImage imageNamed:@"qrcode_scan_btn_myqrcode_nor"] forState:UIControlStateNormal];
        [_btnMyQR setImage:[UIImage imageNamed:@"qrcode_scan_btn_myqrcode_down"] forState:UIControlStateHighlighted];
        [_btnMyQR addTarget:self action:@selector(myQRCode) forControlEvents:UIControlEventTouchUpInside];
        
        [_bottomItemsView addSubview:_btnFlash];
        [_bottomItemsView addSubview:_btnPhoto];
        [_bottomItemsView addSubview:_btnMyQR];   
        
    }
- (void)cameraInitOver
    {
        if (self.isVideoZoom) {
            [self zoomView];
        }
}
    
- (LBXScanVideoZoomView*)zoomView
    {
        if (!_zoomView)
        {
            
            CGRect frame = self.view.frame;
            
            int XRetangleLeft = self.style.xScanRetangleOffset;
            
            CGSize sizeRetangle = CGSizeMake(frame.size.width - XRetangleLeft*2, frame.size.width - XRetangleLeft*2);
            
            if (self.style.whRatio != 1)
            {
                CGFloat w = sizeRetangle.width;
                CGFloat h = w / self.style.whRatio;
                
                NSInteger hInt = (NSInteger)h;
                h  = hInt;
                
                sizeRetangle = CGSizeMake(w, h);
            }
            
            CGFloat videoMaxScale = [self.scanObj getVideoMaxScale];
            
            //扫码区域Y轴最小坐标
            CGFloat YMinRetangle = frame.size.height / 2.0 - sizeRetangle.height/2.0 - self.style.centerUpOffset;
            CGFloat YMaxRetangle = YMinRetangle + sizeRetangle.height;
            
            CGFloat zoomw = sizeRetangle.width + 40;
            _zoomView = [[LBXScanVideoZoomView alloc]initWithFrame:CGRectMake((CGRectGetWidth(self.view.frame)-zoomw)/2, YMaxRetangle + 40, zoomw, 18)];
            
            [_zoomView setMaximunValue:videoMaxScale/4];
            
            
            __weak __typeof(self) weakSelf = self;
            _zoomView.block= ^(float value)
            {
                [weakSelf.scanObj setVideoScale:value];
            };
            [self.view addSubview:_zoomView];
            
            UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap)];
            [self.view addGestureRecognizer:tap];
        }
        
        return _zoomView;
        
    }
    
- (void)tap
    {
        _zoomView.hidden = !_zoomView.hidden;
    }
    
    - (void)showError:(NSString*)str
    {
        [LBXAlertAction showAlertWithTitle:@"提示" msg:str chooseBlock:nil buttonsStatement:@"知道了",nil];
    }
    
    
    
- (void)scanResultWithArray:(NSArray<LBXScanResult*>*)array
    {
        
        if (array.count < 1)
        {
            [self popAlertMsgWithScanResult:nil];
            
            return;
        }
        
        //经测试，可以同时识别2个二维码，不能同时识别二维码和条形码
        for (LBXScanResult *result in array) {
            
            NSLog(@"scanResult:%@",result.strScanned);
        }
        
        LBXScanResult *scanResult = array[0];
        
        NSString*strResult = scanResult.strScanned;
        
        self.scanImage = scanResult.imgScanned;
        
        if (!strResult) {
            
            [self popAlertMsgWithScanResult:nil];
            
            return;
        }
        
        //震动提醒
        // [LBXScanWrapper systemVibrate];
        //声音提醒
        //[LBXScanWrapper systemSound];
        
        [self showNextVCWithScanResult:scanResult];
        
    }
    
- (void)popAlertMsgWithScanResult:(NSString*)strResult
    {
        if (!strResult) {
            
            strResult = @"识别失败";
        }
        
        __weak __typeof(self) weakSelf = self;
        [LBXAlertAction showAlertWithTitle:@"扫码内容" msg:strResult chooseBlock:^(NSInteger buttonIdx) {
            
            //点击完，继续扫码
            [weakSelf reStartDevice];
        } buttonsStatement:@"知道了",nil];
    }
    
- (void)showNextVCWithScanResult:(LBXScanResult*)strResult
    {
        
        NSLog(@"result=======> %@",strResult);
        ResultViewController *vc = [ResultViewController new];
//        vc.imgScan = strResult.imgScanned;
        
        vc.strScan = strResult.strScanned;
        
        vc.strCodeType = strResult.strBarCodeType;
        
        [self.navigationController pushViewController:vc animated:YES];
}
    
    
#pragma mark -底部功能项
    //打开相册
- (void)openPhoto
    {
        if ([LBXScanWrapper isGetPhotoPermission])
        [self openLocalPhoto];
        else
        {
            [self showError:@"      请到设置->隐私中开启本程序相册权限     "];
        }
    }
    
// 我的二维码
- (void)myQRCode
{
//        MyQRViewController *vc = [MyQRViewController new];
//        [self.navigationController pushViewController:vc animated:YES];
}
    
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}



@end
